The problem of writing error-free computer programs has plagued programmers since the beginning. Sophisticated schemes for automatically discovering program errors and bugs of all kinds, including lexical, syntactic, semantic and logical, have been developed.
Most of software developers understand that the longer an error is allowed to remain in the software before it is discovered, the more expensive it becomes to fix. With vigilant testing from the earliest phases of the software lifecycle, software development teams find errors earlier and reduce the likelihood of discovering the error further down in the software lifecycle. Early detection reduces the cost of fixing each error, which in turn, reduces the cumulative cost of fixing the thousands of errors that typically surface in the course of a project. Considering the costs an organization would incur if even few errors were not found until late in the lifecycle, it is clear that early detection of errors yields a substantial cost benefit.
When a software development team has an automated and comprehensive method for preventing errors throughout the lifecycle of the software product, the team typically prevents hundreds or even thousands of errors from occurring throughout a project. As a result, the team has significantly fewer errors to find and fix, which translates to reduced costs and a more rapid, efficient development process.
To enable the process of early error detection and error prevention a global and comprehensive reporting mechanism is needed. Different people involved with the software development cycle need to know where the errors are occurring, how and why they are occurring and what specific area needs more attention to prevent the errors from occurring. A reporting feedback loop across the software development lifecycle, from design to deployment, is needed if errors are to be prevented at every stage. This means understanding where the process is working and where it needs to be fine-tuned.